
package com.waitingsnow.common.share.qqMicroBlog.api
{
	import com.waitingsnow.common.share.qqMicroBlog.operation.IRequestOperation;
	
	/**
	 * 其他API
	 * @langversion 3.0
	 * @playerversion Flash 9
	 * @playerversion AIR 1.1
	 *
	 */
	public class Other extends AbstractAPI
	{
		
		/**
		 * 1.我可能认识的人
		 * @return IRequestOperation实例
		 */		
		public function kownPerson():IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/kownperson";
			var attachParms:Object = {};
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 2.短url变长url
		 * @param pageURL 短url后辍
		 * @return IRequestOperation实例
		 */		
		public function shortURL(pageURL:String):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/shorturl";
			var attachParms:Object = {};
			attachParms.url = pageURL;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 3.获取视频上传的key
		 * @return IRequestOperation实例
		 */		
		public function videoKey():IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/videokey";
			var attachParms:Object = {};
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 4.获取表情接口
		 * @param type 0-11
		 * @return IRequestOperation实例
		 */		
		public function getEmotions(type:int):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/get_emotions";
			var attachParms:Object = {};
			attachParms.type = type;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 5.一键转播热门排行
		 * @param reqnum 请求数
		 * @param type 所请求的热门转播排行的类型，其值及其说明如下：type=5，表示该请求用于查询同一网站内的一键转播热门排行 ; type=6，表示该请求用于查询同一地区内的一键转播热门排行，此时get请求中需要提供contry, province和city的参数值。
		 * @param country 国家代码
		 * @param provice 省代码
		 * @param city 城市代码
		 * @return IRequestOperation实例
		 */		
		public function getTopReAdd(reqnum:int,type:int=5,country:String=null,provice:String=null,city:String=null):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/gettopreadd";
			var attachParms:Object = {};
			attachParms.reqnum = reqnum;
			attachParms.type = type;
			if(country != null)
				attachParms.country = country;
			if(provice != null)
				attachParms.provice = provice;
			if(city != null)
				attachParms.city = city;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 6.拉取我收听的用户的转播消息接口
		 * @param rootid 转发或者回复的微博根结点ID
		 * @param pageflag 翻页标识，0：第一页，1：向下翻页，2：向上翻页
		 * @param pagetime 本页起始时间，和pageflag一起使用，精确定位翻页点，若不需要精确定位，只需给出pageTime, 第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间
		 * @param tweetid 与pageflag和pagetime一起使用，用于翻页,第一页：填0，向上翻页：填上一次请求返回的第一条记录id，向下翻页：填上一次请求返回的最后一条记录id
		 * @param reqnum 用户请求的微博消息数目
		 * @return IRequestOperation实例
		 */
		public function followerTransConv(rootid:String,pageflag:int=0,pagetime:String="0",tweetid:String="0",reqnum:int=10):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/follower_trans_conv";
			var attachParms:Object = {};
			attachParms.rootid = rootid;
			attachParms.pageflag = pageflag;
			attachParms.pagetime = pagetime;
			attachParms.tweetid = tweetid;
			attachParms.reqnum = reqnum;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 7.拉取精华转播消息接口
		 * @param rootid 转发或者回复的微博的根结点ID
		 * @param offset 起始偏移量，分页用
		 * @param reqnum 用户请求的微博消息数目
		 * @return IRequestOperation实例
		 */
		public function qualityTransConv(rootid:String,offset:int=0,reqnum:int=10):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/quality_trans_conv";
			var attachParms:Object = {};
			attachParms.rootid = rootid;
			attachParms.offset = offset;
			attachParms.reqnum = reqnum;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 8.拉取vip用户的转播消息接口
		 * @param rootid 转发或者回复的微博根结点ID
		 * @param pageflag 翻页标识，0：第一页，1：向下翻页，2：向上翻页
		 * @param pagetime 本页起始时间，和pageflag一起使用，精确定位翻页点，若不需要精确定位，只需给出pageTime, 第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间
		 * @param tweetid 与pageflag和pagetime一起使用，用于翻页,第一页：填0，向上翻页：填上一次请求返回的第一条记录id，向下翻页：填上一次请求返回的最后一条记录id
		 * @param reqnum 用户请求的微博消息数目
		 * @return IRequestOperation实例
		 */		
		public function vipTransConv(rootid:String,pageflag:int=0,pagetime:String="0",tweetid:String="0",reqnum:int=10):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/vip_trans_conv";
			var attachParms:Object = {};
			attachParms.rootid = rootid;
			attachParms.pageflag = pageflag;
			attachParms.pagetime = pagetime;
			attachParms.tweetid = tweetid;
			attachParms.reqnum = reqnum;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 9.短url聚合
		 * @param url 用户提供的需要进行聚合查询的url字符串，既可能是长url也可能是短url
		 * @param pageflag 翻页标识，0：第一页，1：向下翻页，2：向上翻页
		 * @param pageTime 本页起始时间，和pageflag一起使用，精确定位翻页点，若不需要精确定位，只需给出pageTime;第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间
		 * @param tweetid 与pageflag和pagetime一起，用于翻页;第一页：填0，向上翻页：填上一次请求返回的第一条记录id，向下翻页：填上一次请求返回的最后一条记录id
		 * @param type 查询条件，0x01-原创发表，0x02表示转载，0x40点评类型
		 * @param words 字数限制，返回微博内容字数大于该值的，无需字数限制则填0
		 * @param flag 按位使用，0x01-VIP查询，0x02-非VIP查询
		 * @param reqnum 请求的个数(最大50个)
		 * @param detaillevel 详细程度(1、2、3)，不同级别返回的微博相关信息包括：
		 * 1. tweetinfo = ｛ tweetid + time ｝
		 * 2. tweetinfo = ｛ tweetid + time + contenttype + type + name + openid｝
		 * 3. tweetinfo = ｛ tweetid + time + contenttype + type + name + openid + rootid + parentid ｝ 
		 * 如果用户不指定detaillevel的值，则服务器默认返回第3种类型的微博信息
		 * @return IRequestOperation实例
		 */
		public function urlConverge(url:String,pageflag:int=0,pageTime:String="0",tweetid:String="0",type:int=0,words:int=0,flag:int=1,reqnum:int=20,detaillevel:int=3):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/url_converge";
			var attachParms:Object = {};
			attachParms.url = url;
			attachParms.pageflag = pageflag;
			attachParms.pageTime = pageTime;
			attachParms.tweetid = tweetid;
			attachParms.type = type;
			attachParms.words = words;
			attachParms.flag = flag;
			attachParms.reqnum = reqnum;
			attachParms.detaillevel = detaillevel;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 10.同话题热门转播排行
		 * @param checktype 值为1时表示查询“全时段”排行榜，2表示查询“单周内“排行榜，3表示查询”单月内“排行榜
		 * @param topictype 用户通过何种方式指定要查询的话题, 0-表示按照ID查询，通过topicid参数指定要查询的话题id 1-表示按照话题标题进行查询，topicname参数指定要查询的话题的标题
		 * @param reqnum 用户请求的微博消息数目
		 * @return IRequestOperation实例
		 */
		public function getTopIczbRank(checktype:int=1,topictype:int=0,reqnum:int=20):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"other/gettopiczbrank";
			var attachParms:Object = {};
			attachParms.checktype = checktype;
			attachParms.topictype = topictype;
			attachParms.reqnum = reqnum;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
	}
}